#ifndef COMMONPAGE_H
#define COMMONPAGE_H

#include <QWidget>
#include"songitem.h"
#include<QListWidget>
#include<QListWidgetItem>
#include<QMediaPlayer>
#include <QMediaPlaylist>
#include "musiclist.h"
namespace Ui {
class CommonPage;
}
enum musicListType
{
 LOCAL_LIST,LIKE_LIST,HOSTORY_LIST
};
enum PageType
{
    LIKE_PAGE, // 我喜欢⻚⾯
    LOCAL_PAGE, // 本地下载⻚⾯
    HISTORY_PAGE // 最近播放⻚⾯
};
class CommonPage : public QWidget
{
    Q_OBJECT

public:
    void setMusicListType(PageType pageType);
    // 新增成员变量
    // 歌单列表
    QVector<QString> musicListOfPage; // 具体某个⻚⾯的⾳乐，将来只需要存储⾳乐的id即可---音乐发送变化时此音乐的id会发生变化

    PageType pageType; // 标记属于likePage、localPage、recentPage哪个⻚⾯
    musicListType  musicOfPage;
    explicit CommonPage(QWidget *parent = nullptr);
    ~CommonPage();
    void setSign(QString sign);
    void setMidImg(QString img_path);
    void setCommonPageUI(QString sign,QString img_path);
    void reFresh(MusicList& musicList);
    void addMusicToPlayer(MusicList &musicList, QMediaPlaylist *playList);
    const QString& getMusicIdByIndex(int index);
private slots:
    void on_listWidget_itemDoubleClicked(QListWidgetItem *item);

signals:
    void ResetLike(bool like,QString MusicId);
    // 该信号由QQMusic处理--在构函数中捕获
    void playAll(PageType pageType);
    void playMusicByIndex(CommonPage*,int);
private:
    Ui::CommonPage *ui;
    void addMusicToMusicPage(MusicList &musicList);
};

#endif // COMMONPAGE_H
